A Language-Based Tuning Mechanism for Task and Pipeline Parallelism
نویسندگان
چکیده
Current multicore computers differ in many hardware aspects. Tuning parallel applications is indispensable to achieve best performance on a particular hardware platform. Auto-tuners represent a promising approach to systematically optimize a program’s tuning parameters, such as the number of threads, the size of data partitions, or the number of pipeline stages. However, auto-tuners require several tuning runs to find optimal values for all parameters. In addition, a program optimized for execution on one machine usually has to be re-tuned on other machines. Our approach tackles this problem by introducing a language-based tuning mechanism. The key idea is the inference of essential tuning parameters from high-level parallel language constructs. Instead of identifying and adjusting tuning parameters manually, we exploit the compiler’s context knowledge about the program’s parallel structure to configure the tuning parameters at runtime. Consequently, our approach significantly reduces the need for platform-specific tuning runs. We implemented the approach as an integral part of XJava, a Java language extension to express task and pipeline parallelism. Several benchmark programs executed on different hardware platforms demonstrate the effectiveness of our approach. On average, our mechanism sets over 90% of the relevant tuning parameters automatically and achieves 93% of the optimal performance.
منابع مشابه
Engineering Large Parallel Functional Programs
The design and implementation of useful programming languages , whether sequential or parallel, should be driven by large, realistic applications. In constructing several medium-and large-scale programs in Glasgow Parallel Haskell, GpH, a parallel extension of Haskell, the group at Glasgow has investigated several important engineering issues: { Real Application Parallelism. The programs achiev...
متن کاملAn improved joint model: POS tagging and dependency parsing
Dependency parsing is a way of syntactic parsing and a natural language that automatically analyzes the dependency structure of sentences, and the input for each sentence creates a dependency graph. Part-Of-Speech (POS) tagging is a prerequisite for dependency parsing. Generally, dependency parsers do the POS tagging task along with dependency parsing in a pipeline mode. Unfortunately, in pipel...
متن کاملCommunicating data-parallel tasks: an MPI library for HPF
High Performance Fortran (HPF) has emerged as a standard dialect of Fortran for data-parallel computing. However, HPF does not support task parallelism or heterogeneous computing adequately. This paper presents a summary of our work on a library-based approach to support task parallelism, using MPI as a coordination layer for HPF. This library enables a wide variety of applications, such as mul...
متن کاملAutomatic Parallelization of XQuery Programs
XQuery is a functional language with implicit parallelism. It is an important approach to improve the efficiency of XML query by taking full advantage of multicore environment in the parallel implementation of XQuery language. In this paper, we propose an implementation method for parallelizing XML query represented by XQuery programs automatically. According to the features of its functional l...
متن کاملARPN Journal of Systems and Software::Autotuning Strategies For Reducing Synchronization Costs In Multithreaded Kernels
Emergence of multicore architectures has opened up new opportunities for thread-level parallelism and dramatically increased the theoretical peak on current systems. However, achieving a high fraction of peak performance requires careful orchestration of many architecture-sensitive parameters, both on-chip and across the interconnect. In particular, the presence of shared-caches on multicore ar...
متن کاملذخیره در منابع من
با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید
عنوان ژورنال:
دوره شماره
صفحات -
تاریخ انتشار 2010